//文章路由接口模块
const express=require("express")

//导入文章处理
const article_handler=require("../router_handler/article_handler")

// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')

// 创建 multer 的实例对象，通过 dest 属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') })

//导入表单验证对象
const expressjoi=require("@escook/express-joi")
//导入文章表单验证规则
const {add_article_schema,byid_article_schema,byid_deleteArt_schema,update_Article_schema}=require("../schemea/article")

//创建文章路由
const articleRouter=express.Router()

//挂载添加文章的接口
//本接口配置了两个中间件
//第一个负责解析文件类型数据
//第二个负责解析文本类型数据
//将文件类型的数据解析并挂载到req.file中
//将文本类型数据解析并挂载到req.body中
articleRouter.post("/add",upload.single('cover_img'),expressjoi(add_article_schema),article_handler.addArticle)

//获取所有文章数据
articleRouter.get("/articles",article_handler.getArticles)

//依据id查询文章数据
articleRouter.get("/article/:id",expressjoi(byid_article_schema),article_handler.getArticleById)

//依据文章id删除文章
articleRouter.delete("/article/:id",expressjoi(byid_deleteArt_schema),article_handler.deleteArticleByid)

//依据文章id修改文章
//注意:仅草稿状态下可修改
articleRouter.put("/article/:id",upload.single('cover_img'),expressjoi(update_Article_schema),article_handler.updateArticleInfo)

//导出文章路由
module.exports=articleRouter